package cn.yinyu.queue.module.ecg.dal.dataobject.queue;

import cn.yinyu.queue.module.ecg.dal.dataobject.patient.PatDetails;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.*;
import com.baomidou.mybatisplus.annotation.*;
import cn.yinyu.queue.framework.mybatis.core.dataobject.BaseDO;

import java.time.LocalDate;
import java.util.List;
import java.util.Map;

/**
 * 排队 DO
 *
 * @author 垠域源码
 */
@TableName( value="queue", autoResultMap = true )
@KeySequence("queue_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class QueueDO extends BaseDO {

    /**
     * id
     */
    @TableId
    private Integer id;
    /**
     * 预约申请号
     */
    private String applyNo;
    /**
     * 就诊流水号
     */
    private String episodeId;
    /**
     * 内部预约编号
     */
    private Long appointId;
    /**
     * 患者编号
     */
    private String patId;
    /**
     * 患者姓名
     */
    private String patName;
    /**
     * 患者性别
     */
    private Byte patGender;
    /**
     * 患者详情
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private PatDetails patDetails;
    /**
     * 预约日期
     */
    private LocalDate bookDate;
    /**
     * 预约时间段
     */
    private Integer bookTimeslot;
    /**
     * 预约检查类型
     */
    private Integer bookCheckType;
    /**
     * 预约序号
     */
    private Integer bookSeqNum;
    /**
     * 是否VIP
     */
    private Integer isVip;
    /**
     * 排队序号
     */
    private Integer seqNum;
    /**
     * 5:过号 10:排队中 15:已召回 20:候诊准备 30:就诊中 40:就诊完成
     */
    private Integer status;
    /**
     * 过号标记
     */
    private Byte passed;
    /**
     * 预约过期标记
     */
    private Byte expired;
    /**
     * 插队标记
     */
    private Byte jumpFlag;
    /**
     * 是否亲和项
     */
    private Integer affinityItem;
    /**
     * 诊室编号
     */
    private Long roomId;
    /**
     * 诊室名称
     */
    private String roomName;
    /**
     * 诊疗床编号
     */
    private String bedNo;
}

